package com.example.kotlin.mvp

import com.example.kotlin.mvp.base.BaseView
import io.reactivex.Observable

/**
 * @author chenmengjia
 */
class UserInfoContract {
    // user View 层
    interface UserInfoView : BaseView {
        // 1.正在加载中
        // 2.获取出错了
        // 3.成功了要显示数据
        fun onLoading()
        fun onError()
        fun onSucceed(userInfo: UserInfo?)
    }

    // user presenter 层
    internal interface UserInfoPresenter {
        fun getUsers(token: String?)
    }

    //Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,如是否使用缓存
    internal interface UserInfoModel {
        fun getUsers(token: String?): Observable<UserInfo?>?
    }
}